package com.medisoft.managedbean;

import com.medisoft.dao.UsuarioDao;
import com.medisoft.model.Usuario;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;
import org.primefaces.context.RequestContext;

/**
 *
 * @author mmedina
 */
@ManagedBean(name = "loginMb")
public class LoginMb {

    @EJB
    UsuarioDao usuarioDao;

    private Usuario usuario;

    public LoginMb() {

        usuario = (Usuario) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("usuario");
        try {
            if (usuario != null) {
                FacesContext.getCurrentInstance().getExternalContext().redirect("main.xhtml");
            } else {
                usuario = new Usuario();
            }
        } catch (Exception e) {
        }
    }

    public String validarUsuario() {
        Usuario u = usuarioDao.obtenerUsuario(usuario.getUsername(), usuario.getPassword());
        if (u != null) {
            FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("usuario", u);
            return "main?faces-redirect=true";
        } else {
            errorLogin();
            return "";
        }
    }

    public void errorLogin() {
        String msj = "Eror usuario/Clave incorrectos";
        FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_ERROR, msj, null);
        FacesContext.getCurrentInstance().addMessage(null, fm);
        RequestContext.getCurrentInstance().execute("wvProcesando.hide()");
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

}
